跳到主要内容

Vue 2:Vue.observable

Vue 2.6+ 的 Vue.observable(object) 将对象变为响应式,可用于简单的跨组件状态共享。Vue 3 使用 reactive()。

小型共享状态​

// store.js
import Vue from 'vue';

export const store = Vue.observable({ count: 0, name: 'Alice' });
export const mutations = {
setCount(value) { store.count = value; },
changeName(value) { store.name = value; }
};
<script>
import { store, mutations } from './store';

export default {
computed: {
count: () => store.count,
name: () => store.name
},
methods: {
setCount: mutations.setCount,
changeName: mutations.changeName
}
};
</script>

<template>
<div>
<button @click="setCount(count + 1)">增加</button>
<p>{{ name }}:{{ count }}</p>
</div>
</template>

组件也可在 render(h) 中直接读取 store,依赖变化会触发更新。此模式没有强制只读或完整的状态管理约束,适合小型场景;数组与动态属性仍受 Vue 2 观测限制。